package com.atguigu.gulimall.product.service;

import com.atguigu.gulimall.product.entity.SkuInfo;
import com.atguigu.gulimall.product.vo.SkuSaveInfoVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author nicc
 * @description 针对表【sku_info(库存单元表)】的数据库操作Service
 * @createDate 2022-09-29 16:08:50
 */
public interface SkuInfoService extends IService<SkuInfo> {

    /**
     * 分页查询sku
     * @param pageNum
     * @param limit
     * @return
     */
    Page<SkuInfo> getSkuListPage(Integer pageNum, Integer limit);

    /**
     * 保存sku属性信息
     * @param skuSaveInfoVo
     */
    void saveSkuInfo(SkuSaveInfoVo skuSaveInfoVo);

    void changeOnSale(Long skuId, int flag);

    /**
     * 查询指定sku商品的价格
     * @param skuId
     * @return
     */
    BigDecimal getSkuPrice(Long skuId);

    /**
     * 获取所有skuId
     * @return
     */
    List<Long> getAllSkuId();

    void updateSkuInfo(SkuSaveInfoVo vo);

    /**
     * 商品上架
     * @param skuId
     */
    void onSale(Long skuId);

    /**
     * 商品下架
     * @param skuId
     */
    void cancelSale(Long skuId);
}